iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
Software Development

FooTinder App - 美食餐廳 x 推薦地圖系列 第 9

Day 09, [軟體開發] 持續集成 / 交付 / 部署,Continuous Integration / Delivery / Deployment (12/03)

  • 分享至 

  • xImage
  •  

持續整合 Continuous Integration

  • 這邊我想直接以近幾年最火熱的 GitHub Action 來做說明 (真的要幫 M家 點個讚,買 GitHub 是傑出的一手)
  • 在任意一個 GitHub Repo 如果有以下的檔案,.github/workflows/xxx.yml
    • 我們可以在指定的時機點 (push, pull request, issue opened, ...
    • 根據條件觸發特定的 job
    • 執行定義好的 step (testing, documentation, package, ...
  • 這 idea 不能說借鏡 Travis-CI,只能說一模一樣

持續交付 Continuous Delivery

  • 承襲上面 CI 的步驟,重點是在 step 那邊再加上一個 delivery,中文說法是過版、換版、更版等等
  • 但其實並沒有那麼單純,之後在後面的某一天我們會再加上一些 Trunk Based Development (TBD), Feature Toggle 相關的內容
  • 這邊只講一個重點,在打通 Delivery 之後,既然我們持續的在 Integration,也代表持續的對目標環境做更新版本的動作。所以務必遵守新功能加上去 (但不打開),而且不能破壞任何現存功能

持續部署 Continuous Deployment

  • 小小講一點的話,上面有一句新功能加上去 (但不打開),那要打開的時候怎麼辦?
    • 偏程式碼的做法,需要一個 Remote Config Server,Client 端要實作 Dynamic Config,在 Config Server 更新設定值之後,由 Server Push 或 Client Polling 的方式取得值然後 Hot Reload
    • 偏 Infra 的做法,以 Web 來說直接由最外層的流量去做路由切換,做 A/B Test。舉例來說小比例的用戶會拿到不一樣的前端網頁,所以也會打到後端預先準備好的端點。Facebook 就這樣常常玩我們,不知道你有沒有感覺你用的 FB 好像跟別人的不一樣呢?

✌️ 那麼第九天到這邊囉,明天來講 -> App 上架

相關資訊


上一篇
Day 08, [產品開發] 急行軍的迭代 (12/02)
下一篇
Day 10, [產品開發] App 上架 (12/03)
系列文
FooTinder App - 美食餐廳 x 推薦地圖30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言